From: Jasper St. Pierre Date: Wed, 8 Jun 2011 06:27:57 +0000 (-0400) Subject: messageTray: update the SummaryItem's label based on Source title changes X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~8182 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=890efa787a05e3fbc043cd0f4ac369d91a8fc531;p=gnome-shell.git messageTray: update the SummaryItem's label based on Source title changes https://bugzilla.gnome.org/show_bug.cgi?id=643513 --- diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index a16fde550..c9ca0fc99 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -893,6 +893,11 @@ Source.prototype = { this.isTransient = isTransient; }, + setTitle: function(newTitle) { + this.title = newTitle; + this.emit('title-changed'); + }, + // Called to create a new icon actor (of size this.ICON_SIZE). // Must be overridden by the subclass if you do not pass icons // explicitly to the Notification() constructor. @@ -995,6 +1000,11 @@ SummaryItem.prototype = { this._sourceTitleBin.child = this._sourceTitle; this._sourceTitleBin.width = 0; + this.source.connect('title-changed', + Lang.bind(this, function() { + this._sourceTitle.text = source.title; + })); + this._sourceBox.add(this._sourceIcon, { y_fill: false }); this._sourceBox.add(this._sourceTitleBin, { expand: true, y_fill: false }); this.actor.child = this._sourceBox; diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 00a7d2c23..35eb58166 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -165,8 +165,11 @@ NotificationDaemon.prototype = { // with a transient one from the same sender, so we // always create a new source object for new transient notifications // and never add it to this._sources . - if (!isForTransientNotification && this._sources[pid]) - return this._sources[pid]; + if (!isForTransientNotification && this._sources[pid]) { + let source = this._sources[pid]; + source.setTitle(title); + return source; + } let source = new Source(title, pid); source.setTransient(isForTransientNotification); diff --git a/js/ui/telepathyClient.js b/js/ui/telepathyClient.js index a87ab2ef3..ba6113d8f 100644 --- a/js/ui/telepathyClient.js +++ b/js/ui/telepathyClient.js @@ -241,7 +241,7 @@ Source.prototype = { _updateAlias: function() { let oldAlias = this.title; - this.title = this._contact.get_alias(); + this.setTitle(this._contact.get_alias()); this._notification.appendAliasChange(oldAlias, this.title); this.pushNotification(this._notification); },